home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / TEST / VT52TEST.M < prev    next >
Encoding:
Text File  |  1991-02-15  |  3.4 KB  |  143 lines

  1. MODULE VT52Test;
  2.  
  3. (*
  4.  * Test-Programm für VT52-Modul
  5.  *
  6.  * Achtung: Unbedingt die Return-Taste und nicht die Space-Taste drücken,
  7.  *  weil sonst durch den "Read"-Aufruf Leerzeichen ausgegeben werden und
  8.  *  das evtl. zu Verwunderung führt!
  9.  *)
  10.  
  11. FROM VT52 IMPORT GetGotoRowColSeq, Seq, Codes;
  12.  
  13. FROM InOut IMPORT Write, WriteLn, WriteString, Read;
  14.  
  15. VAR i: CARDINAL;
  16.  
  17. PROCEDURE WriteVT52 (c: Codes);
  18.   BEGIN
  19.     WriteString (Seq [c])
  20.   END WriteVT52;
  21.  
  22. PROCEDURE GotoRowCol (row, col: CARDINAL);
  23.   VAR s: ARRAY [0..4] OF CHAR;
  24.   BEGIN
  25.     GetGotoRowColSeq (row, col, s);
  26.     WriteString (s)
  27.   (* Beim Hänisch- und Megamax-Modula kann auch folgendes geschrieben werden:
  28.     WriteString ( GotoRowColSeq (row, col) )
  29.   *)
  30.   END GotoRowCol;
  31.  
  32. PROCEDURE wait;
  33.   VAR ch: CHAR;
  34.   BEGIN
  35.     (*
  36.       WriteVT52 (cursorOn);
  37.     *)
  38.     Read (ch);
  39.     (*
  40.       WriteVT52 (cursorOff);
  41.     *)
  42.   END wait;
  43.  
  44. BEGIN
  45.   (*
  46.     WriteVT52 (cursorOff);
  47.   *)
  48.   WriteLn;
  49.   WriteString ('Drücke nach einer Ausgabe mit "..." am Ende immer eine Taste!');
  50.   WriteLn;
  51.   WriteLn;
  52.   WriteString ('Bildschirm wird gelöscht...');
  53.   wait;
  54.   WriteVT52 (clearScreen);
  55.   WriteLn;
  56.   WriteLn;
  57.   WriteVT52 (saveRowCol);
  58.   WriteString ('Hier folgt ein großes "V": ');
  59.   Write ('\');
  60.   WriteVT52 (down);
  61.   Write ('\');
  62.   WriteVT52 (right);
  63.   WriteVT52 (right);
  64.   Write ('/');
  65.   WriteVT52 (down);
  66.   WriteVT52 (left);
  67.   WriteVT52 (left);
  68.   WriteVT52 (left);
  69.   WriteString ('\/');
  70.   WriteVT52 (up);
  71.   WriteVT52 (up);
  72.   WriteVT52 (right);
  73.   Write ('/');
  74.   WriteVT52 (restoreRowCol);
  75.   WriteLn;
  76.   WriteLn;
  77.   WriteLn;
  78.   WriteLn;
  79.   WriteString ('Oben wird eine neue Zeile eingefügt...');
  80.   wait;
  81.   WriteVT52 (home);
  82.   WriteVT52 (moveUp);
  83.   WriteString ('Hier ist die eingefügte Zeile. Und nun nochmal dasselbe...');
  84.   wait;
  85.   WriteVT52 (home);
  86.   WriteVT52 (insertLine);
  87.   WriteString ('Diese Zeile wurde ganz oben eingefügt und nun wieder entfernt...');
  88.   wait;
  89.   WriteVT52 (deleteLine);
  90.   wait;
  91.   WriteLn;
  92.   WriteVT52 (insertLine);
  93.   WriteString ('Diese Zeile wurde darunter eingefügt und nun wieder entfernt...');
  94.   wait;
  95.   WriteVT52 (deleteLine);
  96.   GotoRowCol (12, 0);
  97.   WriteString ('Das war fein...');
  98.   wait;
  99.   WriteVT52 (clearLine);
  100.   GotoRowCol (24, 0);
  101.   WriteString ('Dies steht nun ganz unten...');
  102.   wait;
  103.   WriteVT52 (down);      (* darf nicht scrollen *)
  104.   WriteVT52 (down);      (* darf nicht scrollen *)
  105.   WriteVT52 (moveDown);  (* muß scrollen *)
  106.   WriteVT52 (firstCol);
  107.   WriteString ('Jetzt nicht mehr...');
  108.   wait;
  109.   GotoRowCol (15, 0);
  110.   WriteString ('Das verschwindet gleich ->');
  111.   WriteVT52 (saveRowCol);
  112.   WriteString (' Müll Müll Müll...');
  113.   wait;
  114.   WriteVT52 (restoreRowCol);
  115.   WriteVT52 (clearEOL);
  116.   WriteLn;
  117.   WriteString ('Müll Müll <- Das muß auch weg...');
  118.   wait;
  119.   WriteVT52 (firstCol);
  120.   FOR i:= 1 TO 9 DO WriteVT52 (right) END;
  121.   WriteVT52 (clearBOL);
  122.   WriteVT52 (down);
  123.   WriteString ('Nun wird alles vor dieser Zeile gelöscht...');
  124.   wait;
  125.   WriteVT52 (firstCol);
  126.   WriteVT52 (clearBOS);
  127.   WriteLn;
  128.   WriteString ('Und jetzt alles hiernach...');
  129.   wait;
  130.   WriteVT52 (clearEOS);
  131.   WriteLn;
  132.   WriteLn;
  133.   WriteString ('Die ');
  134.   WriteVT52 (reverseOn);
  135.   WriteString ('Mitte');
  136.   WriteVT52 (reverseOff);
  137.   WriteString (' ist invers...');
  138.   WriteLn;
  139.   WriteLn;
  140.   WriteString ('Und das ist das Ende...');
  141.   wait;
  142. END VT52Test.
  143.